Previous | Table of Contents | Next |
When you think of memory performance, fast SRAMs and multilevel caching come to mind. Although these hardware components play a critical role in the latency and throughput of a computers memory subsystem, tweaking the Registry obviously cannot upgrade your machines hardware. So in this section, improving memory performance means improving the way NT uses physical and virtual memory. You know youre experiencing memory problems that you can fix with registry entries, rather than additional hardware, when you get not enough memory to complete task messages in the system Event Log or on the display monitor.
VI-5 The file system cache grows and shrinks as the applications memory demands change. However, at system startup, the caches minimum, maximum, and ideal sizes are calibrated based on the Registry value you set below.
Hive: | HKEY_LOCAL_MACHINE |
Key: | System\CurrentControlSet\Control\Session Manager\ Memory Management |
Value Name: | LargeSystemCache |
Data Type: | REG_DWORD |
Value: | 0 |
This value controls the size of the systems file system cache. A value of 0 indicates a small cache, which is the default setting for Workstation, while 1 indicates a large cache, which is the default setting for Server. Servers usually perform some file sharing and therefore require a larger cache.
VI-6 NT categorizes memory as either paged or nonpaged. Paged memory holds data that can temporarily be moved from physical memory to the systems paging file if space is needed for different data in physical memory. Nonpaged memory stores data that must be present in physical memory at all times. NT allocates a portion of physical memory for nonpaged memory when the system starts up, and this allocation cant grow. If drivers or NT exhaust this storage, the system may become unstable or operations may start to fail. Modifying these two registry entries lets you override the defaults set for the paged and nonpaged pools.
Hive: | HKEY_LOCAL_MACHINE |
Key: | System\CurrentControlSet\Control\Session Manager\ Memory Management |
Value Name: | NonPagedPoolSize |
Data Type: | REG_DWORD |
Value: | <number in bytes > |
This value is the number of bytes of physical memory you want to allocate for nonpaged memory. To monitor your memory, use Performance Monitor to watch the percentage of committed memory thats used. If more than 80 percent of memory is used consistently, you should increase this value. Likewise, if the systems nonpaged memory usage is low, reducing the amount allocated for it increases system performance.
VI-7 | Hive: | HKEY_LOCAL_MACHINE |
Key: | System\CurrentControlSet\Control\Session Manager\ Memory Management | |
Value Name: | PagedPoolSize | |
Data Type: | REG_DWORD | |
Value: | <number in bytes > |
This value is the number of bytes in the paged memory pool. It overrides the systems default calculation, which is roughly equal to the physical memory on Workstation and a minimum of 50 MB on Server. Paged pool is different from virtual memory size the paged pool is space reserved in the systems virtual memory map for NT and device drivers to allocate pageable data.
You can monitor the amount of paged pool the system uses with the Performance Monitor, which also shows the maximum allocation possible. If the amount of memory used is consistently more than 80 percent, you should use this setting to override the default.
The registry gives you lots of control over Windows NTs various networking components. Because your system may not run every networking service, you should identify which components are active so that you can target them when evaluating networking performance with tools like Performance Monitor.
VI-8 This value controls the order in which your network redirectors are used. If you have more than one network redirector, such as Lanmanager Workstation or Client Services for NetWare, loaded on your system, you should consider changing this entry.
Hive: | HKEY_LOCAL_MACHINE |
Key: | System\CurrentControlSet\Control\NetworkProvider |
Value Name: | Order |
Data Type: | REG_SZ |
Value: | <redirector name,redirector name,redirector name> |
In this value, you set the order in which the WNet API uses your network providers. When the WNet API is called, it processes requests by sending them to each network provider in the order listed. If it gets back a response that the provider doesnt process that type of request, the API calls the next provider listed. Thus, if most of your systems activity relates to accessing NetWare shares, you should move the NetWare provider name to the start of the list. This small modification can improve performance significantly.
Previous | Table of Contents | Next |